

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>LayIM 社交聊天</title>
        <meta name="renderer" content="webkit">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
        <link rel="stylesheet" href="../../../layui/layui/css/layui.css" media="all">
        <link rel="stylesheet" href="../../../layui/style/admin.css" media="all">
    </head>
    <body>


        <ul class="layui-nav" lay-filter="">
            <li class="layui-nav-item"><a href="http://www.layui.com/admin/">layuiAdmin</a></li>
            <li class="layui-nav-item layui-this"><a href="">LayIM</a></li>
            <li class="layui-nav-item"><a href="http://layim.layui.com/" target="_blank">授权</a></li>
        </ul>


        <div class="layui-fluid">
            <div class="layui-row layui-col-space15">
                <div class="layui-col-md12">
                    <div class="layui-card">
                        <div class="layui-card-header">面板外的操作示例</div>
                        <div class="layui-card-body">

                            <div class="layui-btn-container LAY-senior-im-chat-demo">
                                <button class="layui-btn" data-type="chat">自定义会话</button>
                                <button class="layui-btn" data-type="message">接受好友的消息</button>
                                <button class="layui-btn" data-type="messageAudio">接受音频消息</button>
                                <button class="layui-btn" data-type="messageVideo">接受视频消息</button>
                                <button class="layui-btn" data-type="messageTemp">接受临时会话消息</button>

                                <br>

                                <button class="layui-btn" data-type="add">申请好友</button>
                                <button class="layui-btn" data-type="addqun">申请加群</button>
                                <button class="layui-btn" data-type="addFriend">同意好友</button>
                                <button class="layui-btn" data-type="addGroup">增加群组到主面板</button>
                                <button class="layui-btn" data-type="removeFriend">删除主面板好友</button>
                                <button class="layui-btn" data-type="removeGroup">删除主面板群组</button>

                                <br>
                                <button class="layui-btn" data-type="setGray">置灰离线好友</button>
                                <button class="layui-btn" data-type="unGray">取消好友置灰</button>

                                <button class="layui-btn" data-type="kefu1">在线客服一</button>
                                <button class="layui-btn" data-type="kefu2">在线客服二</button>

                                <button class="layui-btn" data-type="mobile">移动端版本</button>
                            </div>

                        </div>
                    </div>
                </div>
            </div>
        </div>

        <script src="../../../layui/layui/layui.js"></script>  
        <script>
            layui.config({
                base: '../../../layuiadmin/' //静态资源所在路径
            }).extend({
                index: 'lib/index' //主入口模块
            }).use(['index', 'layim'], function () {
                var $ = layui.$
                        , admin = layui.admin
                        , element = layui.element
                        , router = layui.router();


                var layim = layui.layim;

                //演示自动回复
                var autoReplay = [
                    '您好，我现在有事不在，一会再和您联系。',
                    '你没发错吧？face[微笑] ',
                    '洗澡中，请勿打扰，偷窥请购票，个体四十，团体八折，订票电话：一般人我不告诉他！face[哈哈] ',
                    '你好，我是主人的美女秘书，有什么事就跟我说吧，等他回来我会转告他的。face[心] face[心] face[心] ',
                    'face[威武] face[威武] face[威武] face[威武] ',
                    '<（@￣︶￣@）>',
                    '你要和我说话？你真的要和我说话？你确定自己想说吗？你一定非说不可吗？那你说吧，这是自动回复。',
                    'face[黑线]  你慢慢说，别急……',
                    '(*^__^*) face[嘻嘻] ，是贤心吗？'
                ];

                //基础配置
                layim.config({
                    //初始化接口
                    init: {
                        url: layui.setter.base + 'json/layim/getList.json'
                        , data: {}
                    }
                    //查看群员接口
                    , members: {
                        url: layui.setter.base + 'json/layim/getMembers.json'
                        , data: {}
                    }

                    , uploadImage: {
                        url: '' //（返回的数据格式见下文）
                        , type: '' //默认post
                    }
                    , uploadFile: {
                        url: '' //（返回的数据格式见下文）
                        , type: '' //默认post
                    }

                    , isAudio: true //开启聊天工具栏音频
                    , isVideo: true //开启聊天工具栏视频

                            //扩展工具栏
                    , tool: [{
                            alias: 'code'
                            , title: '代码'
                            , icon: '&#xe64e;'
                        }]

                            //,brief: true //是否简约模式（若开启则不显示主面板）

                            //,title: 'WebIM' //自定义主面板最小化时的标题
                            //,right: '100px' //主面板相对浏览器右侧距离
                            //,minRight: '90px' //聊天面板最小化时相对浏览器右侧距离
                    , initSkin: '3.jpg' //1-5 设置初始背景
                            //,skin: ['aaa.jpg'] //新增皮肤
                            //,isfriend: false //是否开启好友
                            //,isgroup: false //是否开启群组
                            //,min: true //是否始终最小化主面板，默认false
                            //,notice: true //是否开启桌面消息提醒，默认false
                            //,voice: false //声音提醒，默认开启，声音文件为：default.mp3

                    , msgbox: '/layim/demo/msgbox.html' //消息盒子页面地址，若不开启，剔除该项即可
                    , find: '/layim/demo/find.html' //发现页面地址，若不开启，剔除该项即可
                    , chatLog: '/layim/demo/chatlog.html' //聊天记录页面地址，若不开启，剔除该项即可

                });
                //监听在线状态的切换事件
                layim.on('online', function (status) {
                    layer.msg(status);
                });

                //监听签名修改
                layim.on('sign', function (value) {
                    layer.msg(value);
                });
                //监听自定义工具栏点击，以添加代码为例
                layim.on('tool(code)', function (insert) {
                    layer.prompt({
                        title: '插入代码 - 工具栏扩展示例'
                        , formType: 2
                        , shade: 0
                    }, function (text, index) {
                        layer.close(index);
                        insert('[pre class=layui-code]' + text + '[/pre]'); //将内容插入到编辑器
                    });
                });

                //监听layim建立就绪
                layim.on('ready', function (res) {
                    //console.log(res.mine);
                    layim.msgbox(5); //模拟消息盒子有新消息，实际使用时，一般是动态获得
                });
                //监听发送消息
                layim.on('sendMessage', function (data) {
                    var To = data.to;
                    //console.log(data);

                    if (To.type === 'friend') {
                        layim.setChatStatus('<span style="color:#FF5722;">对方正在输入。。。</span>');
                    }

                    //演示自动回复
                    setTimeout(function () {
                        var obj = {};
                        if (To.type === 'group') {
                            obj = {
                                username: '模拟群员' + (Math.random() * 100 | 0)
                                , avatar: layui.cache.dir + 'images/face/' + (Math.random() * 72 | 0) + '.gif'
                                , id: To.id
                                , type: To.type
                                , content: autoReplay[Math.random() * 9 | 0]
                            }
                        } else {
                            obj = {
                                username: To.name
                                , avatar: To.avatar
                                , id: To.id
                                , type: To.type
                                , content: autoReplay[Math.random() * 9 | 0]
                            }
                            layim.setChatStatus('<span style="color:#FF5722;">在线</span>');
                        }
                        layim.getMessage(obj);
                    }, 1000);
                });
                //监听查看群员
                layim.on('members', function (data) {
                    //console.log(data);
                });

                //监听聊天窗口的切换
                layim.on('chatChange', function (res) {
                    var type = res.data.type;
                    console.log(res.data.id)
                    if (type === 'friend') {
                        //模拟标注好友状态
                        //layim.setChatStatus('<span style="color:#FF5722;">在线</span>');
                    } else if (type === 'group') {
                        //模拟系统消息
                        layim.getMessage({
                            system: true
                            , id: res.data.id
                            , type: "group"
                            , content: '模拟群员' + (Math.random() * 100 | 0) + '加入群聊'
                        });
                    }
                });


                //面板外的操作
                var $ = layui.jquery, active = {
                    chat: function () {
                        //自定义会话
                        layim.chat({
                            name: '小闲'
                            , type: 'friend'
                            , avatar: '//tva3.sinaimg.cn/crop.0.0.180.180.180/7f5f6861jw1e8qgp5bmzyj2050050aa8.jpg'
                            , id: 1008612
                        });
                        layer.msg('也就是说，此人可以不在好友面板里');
                    }
                    , message: function () {
                        //制造好友消息
                        layim.getMessage({
                            username: "贤心"
                            , avatar: "//tp1.sinaimg.cn/1571889140/180/40030060651/1"
                            , id: "100001"
                            , type: "friend"
                            , content: "嗨，你好！欢迎体验LayIM。演示标记：" + new Date().getTime()
                            , timestamp: new Date().getTime()
                        });
                    }
                    , messageAudio: function () {
                        //接受音频消息
                        layim.getMessage({
                            username: "林心如"
                            , avatar: "//tp3.sinaimg.cn/1223762662/180/5741707953/0"
                            , id: "76543"
                            , type: "friend"
                            , content: "audio[http://gddx.sc.chinaz.com/Files/DownLoad/sound1/201510/6473.mp3]"
                            , timestamp: new Date().getTime()
                        });
                    }
                    , messageVideo: function () {
                        //接受视频消息
                        layim.getMessage({
                            username: "林心如"
                            , avatar: "//tp3.sinaimg.cn/1223762662/180/5741707953/0"
                            , id: "76543"
                            , type: "friend"
                            , content: "video[http://www.w3school.com.cn//i/movie.ogg]"
                            , timestamp: new Date().getTime()
                        });
                    }
                    , messageTemp: function () {
                        //接受临时会话消息
                        layim.getMessage({
                            username: "小酱"
                            , avatar: "//tva1.sinaimg.cn/crop.7.0.736.736.50/bd986d61jw8f5x8bqtp00j20ku0kgabx.jpg"
                            , id: "198909151014"
                            , type: "friend"
                            , content: "临时：" + new Date().getTime()
                        });
                    }
                    , add: function () {
                        //实际使用时数据由动态获得
                        layim.add({
                            type: 'friend'
                            , username: '麻花疼'
                            , avatar: '//tva1.sinaimg.cn/crop.0.0.720.720.180/005JKVuPjw8ers4osyzhaj30k00k075e.jpg'
                            , submit: function (group, remark, index) {
                                layer.msg('好友申请已发送，请等待对方确认', {
                                    icon: 1
                                    , shade: 0.5
                                }, function () {
                                    layer.close(index);
                                });

                                //通知对方
                                /*
                                 $.post('/im-applyFriend/', {
                                 uid: info.uid
                                 ,from_group: group
                                 ,remark: remark
                                 }, function(res){
                                 if(res.status != 0){
                                 return layer.msg(res.msg);
                                 }
                                 layer.msg('好友申请已发送，请等待对方确认', {
                                 icon: 1
                                 ,shade: 0.5
                                 }, function(){
                                 layer.close(index);
                                 });
                                 });
                                 */
                            }
                        });
                    }
                    , addqun: function () {
                        layim.add({
                            type: 'group'
                            , username: 'LayIM会员群'
                            , avatar: '//tva2.sinaimg.cn/crop.0.0.180.180.50/6ddfa27bjw1e8qgp5bmzyj2050050aa8.jpg'
                            , submit: function (group, remark, index) {
                                layer.msg('申请已发送，请等待管理员确认', {
                                    icon: 1
                                    , shade: 0.5
                                }, function () {
                                    layer.close(index);
                                });

                                //通知对方
                                /*
                                 $.post('/im-applyGroup/', {
                                 uid: info.uid
                                 ,from_group: group
                                 ,remark: remark
                                 }, function(res){
                                 
                                 });
                                 */
                            }
                        });
                    }
                    , addFriend: function () {
                        var user = {
                            type: 'friend'
                            , id: 1234560
                            , username: '李彦宏' //好友昵称，若申请加群，参数为：groupname
                            , avatar: '//tva4.sinaimg.cn/crop.0.0.996.996.180/8b2b4e23jw8f14vkwwrmjj20ro0rpjsq.jpg' //头像
                            , sign: '全球最大的中文搜索引擎'
                        }
                        layim.setFriendGroup({
                            type: user.type
                            , username: user.username
                            , avatar: user.avatar
                            , group: layim.cache().friend //获取好友列表数据
                            , submit: function (group, index) {
                                //一般在此执行Ajax和WS，以通知对方已经同意申请
                                //……

                                //同意后，将好友追加到主面板
                                layim.addList({
                                    type: user.type
                                    , username: user.username
                                    , avatar: user.avatar
                                    , groupid: group //所在的分组id
                                    , id: user.id //好友ID
                                    , sign: user.sign //好友签名
                                });

                                layer.close(index);
                            }
                        });
                    }
                    , addGroup: function () {
                        layer.msg('已成功把[Angular开发]添加到群组里', {
                            icon: 1
                        });
                        //增加一个群组
                        layim.addList({
                            type: 'group'
                            , avatar: "//tva3.sinaimg.cn/crop.64.106.361.361.50/7181dbb3jw8evfbtem8edj20ci0dpq3a.jpg"
                            , groupname: 'Angular开发'
                            , id: "12333333"
                            , members: 0
                        });
                    }
                    , removeFriend: function () {
                        layer.msg('已成功删除[凤姐]', {
                            icon: 1
                        });
                        //删除一个好友
                        layim.removeList({
                            id: 121286
                            , type: 'friend'
                        });
                    }
                    , removeGroup: function () {
                        layer.msg('已成功删除[前端群]', {
                            icon: 1
                        });
                        //删除一个群组
                        layim.removeList({
                            id: 101
                            , type: 'group'
                        });
                    }
                    //置灰离线好友
                    , setGray: function () {
                        layim.setFriendStatus(168168, 'offline');

                        layer.msg('已成功将好友[马小云]置灰', {
                            icon: 1
                        });
                    }
                    //取消好友置灰
                    , unGray: function () {
                        layim.setFriendStatus(168168, 'online');

                        layer.msg('成功取消好友[马小云]置灰状态', {
                            icon: 1
                        });
                    }

                    , kefu1: function () {
                        layim.chat({
                            name: '在线客服一' //名称
                            , type: 'kefu' //聊天类型
                            , avatar: '//tp1.sinaimg.cn/5619439268/180/40030060651/1' //头像
                            , id: 1111111 //定义唯一的id方便你处理信息
                        })
                    }
                    , kefu2: function () {
                        layim.chat({
                            name: '在线客服二' //名称
                            , type: 'kefu' //聊天类型
                            , avatar: '//tp1.sinaimg.cn/5619439268/180/40030060651/1' //头像
                            , id: 2222222 //定义唯一的id方便你处理信息
                        });
                    }

                    //移动端版本
                    , mobile: function () {
                        var device = layui.device();
                        var mobileHome = '/layim/demo/mobile.html';
                        if (device.android || device.ios) {
                            return location.href = mobileHome;
                        }
                        var index = layer.open({
                            type: 2
                            , title: '移动版演示 （或手机扫右侧二维码预览）'
                            , content: mobileHome
                            , area: ['375px', '667px']
                            , shadeClose: true
                            , shade: 0.8
                            , end: function () {
                                layer.close(index + 2);
                            }
                        });
                        layer.photos({
                            photos: {
                                "data": [{
                                        "src": "http://cdn.layui.com/upload/2016_12/168_1481056358469_50288.png",
                                    }]
                            }
                            , anim: 0
                            , shade: false
                            , success: function (layero) {
                                layero.css('margin-left', '350px');
                            }
                        });
                    }
                };
                $('.LAY-senior-im-chat-demo .layui-btn').on('click', function () {
                    var type = $(this).data('type');
                    active[type] ? active[type].call(this) : '';
                });

            });
        </script>